package config

import (
	"public.com/Framework/configMgr"
	"public.com/Framework/reloadMgr"

	"public.com/goutil/configUtil"
	"public.com/goutil/logUtil"
)

var (
	// 配置对象

	configManager = configMgr.NewConfigManager()
)

func init() {
	// 设置日志文件的存储目录
	logUtil.SetLogPath("LOG")

	configManager.RegisterInitFunc(initBaseConfig)
	configManager.RegisterInitFunc(initDbConfig)
	configManager.RegisterInitFunc(initFunctionConfig)
	configManager.RegisterInitFunc(initManageCenterConfig)
	configManager.RegisterInitFunc(initMonitorConfig)
	configManager.RegisterInitFunc(initLogMgrConfig)

	if err := reloadConfig(); err != nil {
		panic(err)
	}

	reloadMgr.RegisterReloadFunc("config.reloadConfig", reloadConfig)
}

func reloadConfig() error {
	// 读取配置文件内容
	configObj := configUtil.NewXmlConfig()

	err := configObj.LoadFromFile("config.xml")
	if err != nil {
		return err
	}

	// 调用所有已经注册的配置初始化方法
	if err := configManager.Init(configObj); err != nil {
		return err
	}

	return nil
}
